package com.xxxtea.service;

import com.xxxtea.entity.Collect;
import com.xxxtea.entity.SecondhandGoods;
import com.xxxtea.mapper.SecondhandGoodsMapper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

/**
 * 二手商品服务类
 * 
 * 负责二手商品相关的业务逻辑处理，包括：
 * - 二手商品信息的查询和管理
 * - 为二手商品设置额外的展示数据（如收藏状态）
 * 
 * @author badman
 * @since 1.0.0
 */
@Service
public class SecondhandGoodsService extends BaseService<SecondhandGoodsMapper, SecondhandGoods> {
	
	/**
	 * 收藏服务，用于查询用户的收藏信息
	 */
	@Resource
	private CollectService collectService;

	/**
	 * 为二手商品列表设置额外的展示数据
	 * 
	 * 设置每个二手商品的收藏状态，用于前端展示
	 * 
	 * @param SecondhandGoodsList 二手商品列表
	 */
	public void setExtraData(List<SecondhandGoods> SecondhandGoodsList) {
		// 查询当前用户收藏的二手商品ID集合
		Set<Integer> SecondhandGoodsIds = collectService.lambdaQuery().eq(Collect::getBusinessType, Collect.BusinessType.PRODUCT).list()
				.stream().map(Collect::getBusinessId).collect(Collectors.toSet());
		
		// 为每个二手商品设置收藏状态
		for (SecondhandGoods SecondhandGoods : SecondhandGoodsList) {
			SecondhandGoods.setCollect(SecondhandGoodsIds.contains(SecondhandGoods.getId()));
		}
	}
}